Skip to content

fix(ui): align button states and action roles with UIKit - #2901

Merged
kev1n77 merged 3 commits into
GCWing:mainfrom
kev1n77:fmy/ui-main
Sep 8, 2026
Merged

fix(ui): align button states and action roles with UIKit#2901
kev1n77 merged 3 commits into
GCWing:mainfrom
kev1n77:fmy/ui-main

Conversation

@kev1n77

@kev1n77 kev1n77 commented Sep 8, 2026

Copy link
Copy Markdown
Collaborator

Summary

Align button colors, interaction states, and action roles with the UIKit design.

  • Correct outline, fill, primary, text, and disabled button states.
  • Use primary buttons for main actions and borderless fill buttons for cancellation across dialogs, settings, Git, remote workflows, and chat.
  • Correct shared confirmation, notification, recommendation, and Canvas mappings.
  • Update Design Lab examples and document variant usage.
  • Preserve button dimensions, spacing, typography, icons, callbacks, and loading conditions.

Type and Areas

Type: Bug fix / UI/UX

Areas: Design system, Web UI, Appearance themes, Design Lab, Canvas SDK, desktop bootstrap styles

Motivation / Impact

Several screens used outlined cancellation buttons and low-emphasis fill buttons for their main actions. Updating component colors alone did not correct these choices.

This change makes action emphasis consistent across product surfaces while preserving intentional utility buttons, selection feedback, and destructive-action colors. Existing Appearance overrides and branded themes retain compatibility.

Verification

Passed during implementation:

pnpm run design-system:check
pnpm run check:web

Shared action regression tests — 20 passed:

pnpm --dir src/web-ui exec vitest run --maxWorkers=50% \
  src/infrastructure/confirm-dialog/ConfirmDialogRenderer.test.tsx \
  src/infrastructure/confirm-dialog/confirmDialogService.test.ts \
  src/infrastructure/config/components/common/ConfigActionBar.test.tsx \
  src/shared/notification-system/components/NotificationItem.test.tsx \
  src/tools/openbitfun-canvas/runtime/sdk/adapters.test.tsx \
  src/tools/openbitfun-canvas/runtime/sdk/adapters.test.ts

Focused editor regression tests — 110 passed:

pnpm --dir src/web-ui exec vitest run --maxWorkers=50% \
  src/tools/editor/components/MarkdownEditor.test.tsx \
  src/tools/editor/meditor/components/MEditor.test.tsx \
  src/tools/editor/meditor/utils/tiptapMarkdown.test.ts \
  src/tools/editor/meditor/utils/embeddedSource.test.ts \
  src/tools/editor/meditor/utils/markdownFrontmatter.test.ts \
  src/tools/editor/meditor/components/Preview.test.tsx \
  src/tools/editor/meditor/utils/loadLocalImages.test.ts \
  src/infrastructure/markdown/rehypeSourceRange.test.ts \
  src/infrastructure/markdown/MarkdownRenderer.test.tsx

Source comparison confirmed that the usage migration preserves dimensions, content, callbacks, disabled/loading conditions, and transport logic.

Manual visual acceptance and live testing of remote workspaces, Remote Control, Peer Device Mode, and Detached Dispatch remain pending. Local checks do not establish remote behavior.

Reviewer Notes

  • Button sizing is intentionally unchanged.
  • Review action roles alongside component colors; ordinary utility and selection controls may still use outline or fill variants.
  • No persisted data or protocol shapes change, and no manual migration is required.
  • Mobile and icon-button components retain their separate presentation contracts.

Checklist

  • This PR is focused and does not include secrets, temporary prompts, generated scratch files, or unrelated artifacts.
  • Relevant verification is recorded above, or skipped checks are explained.
  • User-facing strings, docs, and locales are updated where applicable.

Make outline and text surfaces transparent, align fill and primary feedback
with the UIKit design, and preserve variant-specific disabled content.
Keep all existing button dimensions, spacing, typography and icon sizes.

Publish Button-owned theme colors across light, dark and contrast modes;
preserve shared action colors, branded presets and explicit legacy Appearance
overrides. Show the same public buttons on two Design Lab backgrounds and
refresh the generated desktop and offline theme projections.
Use primary for submit, save, create, and confirm actions, and fill for
cancel or dismiss actions. Correct shared confirmations, approval actions,
notifications, recommendations, Canvas primary mapping, and Design Lab
examples. Keep danger semantics and intentional selection/utility variants.

Preserve dimensions, callbacks, disabled/loading conditions, and transport
logic. Document variant roles and cover shared confirmation choices,
notification actions, settings actions, Canvas mapping, and AskUser output.

Validation: design-system:check; check:web; 20 shared action regression tests;
110 focused editor tests. Manual visual and live remote checks remain pending.
@kev1n77
kev1n77 merged commit 14e4d95 into GCWing:main Sep 8, 2026
13 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant